/**
 * {
  field: 'notes',
  title: '备注',
  slots: {
    default: renderCustomSlot('notes', { 
      separator: ', ', 
      transform: (value) => value.toUpperCase(),
      defaultText: '无备注' 
    }),
  },
},
 * 数组值： 使用指定分隔符连接。
 * 字符串值： 换行符替换为逗号，支持自定义处理逻辑。
 * 空值： 显示默认文本（例如 - 或自定义文本）。
 * @param {*} field 
 * @param {*} options 
 * @returns 
 */
export const renderCustomSlot = (field, options = {}) => {
  return ({ row }) => {
    let value = row?.[field];
    if (Array.isArray(value)) {
      // 数组，使用指定分隔符连接
      value = value.join(options.separator || ",");
    } else if (typeof value === "string") {
      // 字符串，替换换行符为逗号
      value = value.replace(/\n/g, options.separator || ",");
    }

    // 如果值为空，显示默认文本
    return <div>{value || options.defaultText || "-"}</div>;
  };
};
